/**
 * 放一些工具
 */

// 初始化相关：
// 判断浏览器
let getBrowserInfo = () => {
    let browserInfo = {
            terminal: String, // 客户端
            type: String, // 型号
            browser: String // 浏览器
        } // 浏览器信息
    let u = navigator.userAgent
        //移动终端浏览器版本信息
    let trident = u.indexOf('Trident') > -1; //IE内核
    let presto = u.indexOf('Presto') > -1; //opera内核
    let webKit = u.indexOf('AppleWebKit') > -1; //苹果、谷歌内核
    let gecko = u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1; //火狐内核
    let mobile = !!u.match(/AppleWebKit.*Mobile.*/); //是否为移动终端
    let ios = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    let android = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或uc浏览器
    let iPhone = u.indexOf('iPhone') > -1; //是否为iPhone或者QQHD浏览器
    let iPad = u.indexOf('iPad') > -1; //是否iPad
    let safari = u.indexOf('Safari') == -1; //是否web应该程序，没有头部与底部
    if (mobile) { //判断是否是移动设备打开
        // 反馈为移动端
        browserInfo['terminal'] = 'mobile'
        let ua = navigator.userAgent.toLowerCase(); //获取判断用的对象
        if (ios) { //移动设备为IOS
            browserInfo['type'] = 'ios'
        }
        if (android) { //移动设备为android
            browserInfo['type'] = 'android'
        }
        if (ua.match(/MicroMessenger/i) == "micromessenger") { //是否在微信打开
            browserInfo['browser'] = 'micromessenger'
        }
        if (ua.match(/WeiBo/i) == "weibo") { //是否是在微博中打开
            browserInfo['browser'] = 'weibo'
        }
        if (ua.match(/QQ/i) == "qq") { //是否在QQ打开
            browserInfo['browser'] = 'qq'
        }
        if (iPhone) {
            // browserInfo['browser'] = 'iPhone/QQHD'
            browserInfo['browser'] = 'iPhone'
        }
        if (iPad) {
            browserInfo['type'] = 'iPad'
        }
    } else { //否则就是PC浏览器打开
        // 反馈为移动端
        browserInfo['terminal'] = 'PC'
        if (trident) {
            browserInfo['browser'] = 'IE'
        }
        if (presto) {
            browserInfo['browser'] = 'Opera'
        }
        if (webKit) {
            browserInfo['browser'] = 'Chrome'
        }
        if (gecko) {
            browserInfo['browser'] = 'Firefox'
        }
        if (safari) {
            browserInfo['browser'] = 'safari'
        }
    }
    let obj = JSON.stringify(browserInfo)
    return obj
}

/**
 * 手指左滑动
 * _this    this指向
 * dis      ul宽度补充
 * slideX   每次滑动距离
 * type     盒子类型 
*/ 

let touchSlideLeft = (_this, dis, slideX, type) => {
    // ul总宽度
    const countWidth = _this.$refs.warp.scrollWidth + dis
    // 外部盒子和ul的差距离
    const gap = countWidth - _this.$refs[`${type}`].offsetWidth 
    console.log(_this.translateX, -gap)
    if (_this.translateX - slideX <= -gap) {
        _this.translateX = -gap
        _this.$refs.warp.style.transform = `translateX(${_this.translateX}px)`
        return
    }
    _this.translateX -= slideX
    _this.$refs.warp.style.transform = `translateX(${_this.translateX}px)`
}

/**
 * 手指右滑动
 * _this    this指向
 * slideX   每次滑动距离
 */
let touchSlideRight = (_this, slideX) => {
    if (-_this.translateX - slideX <= 0) {
        _this.translateX = 0
        _this.$refs.warp.style.transform = `translateX(${_this.translateX}px)`
        return
    }
    _this.translateX += slideX
    _this.$refs.warp.style.transform = `translateX(${_this.translateX}px)`
}

export default class WebUtils {
    // 获取流量来源
    static waitAppInit() {
        return getBrowserInfo()
    }
    // 滑动方法
    static touchSlideLeft(_this, dis, slideX, type) {
        return touchSlideLeft(_this, dis, slideX, type)
    }
    static touchSlideRight(_this, slideX) {
        return touchSlideRight(_this, slideX)
    }
}